package com.sojson.entity.vo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.sojson.entity.po.Member;
import com.sojson.entity.po.Post;
import com.sojson.util.StringUtil;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 职位表Bean
 * 
 * @author liu
 * @date 2021-04-15
 */
@ApiModel("职位表Bean")
public class PostVo extends Post {

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    private static final long serialVersionUID = 1618475390582L;

    @ApiModelProperty("距离")
    private Long dist;
    @ApiModelProperty("录用状态(1:待录用,2:已取消,3:未录用,4:待上岗,5:未上岗,6:待结薪,7:已完成)")
    private Integer hireStatus;
    @ApiModelProperty("BOSS信息")
    private Member boss;
    @ApiModelProperty("金额开始和结束区间")
    private String expectedSalary;
    @ApiModelProperty("金额开始区间")
    private BigDecimal payStart;
    @ApiModelProperty("金额结束区间")
    private BigDecimal payEnd;
    @ApiModelProperty("录用人数")
    private Integer hireNum;
    @ApiModelProperty("应聘记录ID")
    private Integer postApplyId;
    @ApiModelProperty("是否已招满(true:是,false:否)")
    private Boolean isFull;
    @ApiModelProperty("当前时间")
    private Date thisDate;
    @ApiModelProperty("上岗状态(1:待审核,2:已上岗,3:未上岗,4:已取消)")
    private List<Integer> postsStatuss;

    /** 获取距离 */
    public Long getDist() {
        return dist;
    }

    /** 设置距离 */
    public void setDist(Long dist) {
        this.dist = dist;
    }

    /** 获取录用状态(1:待录用,2:已取消,3:未录用,4:待上岗,5:未上岗,6:待结薪,7:已完成) */
    public Integer getHireStatus() {
        return hireStatus;
    }

    /** 设置录用状态(1:待录用,2:已取消,3:未录用,4:待上岗,5:未上岗,6:待结薪,7:已完成) */
    public void setHireStatus(Integer hireStatus) {
        this.hireStatus = hireStatus;
    }

    /**
     * 获取BOSS信息
     * 
     * @return
     */
    public Member getBoss() {
        return boss;
    }

    /**
     * 设置BOSS信息
     * 
     * @param boss
     */
    public void setBoss(Member boss) {
        this.boss = boss;
    }

    /**
     * 获取金额开始和结束区间
     * 
     * @return
     */
    public String getExpectedSalary() {
        return expectedSalary;
    }

    /**
     * 设置金额开始和结束区间
     * 
     * @param expectedSalary
     */
    public void setExpectedSalary(String expectedSalary) {
        this.expectedSalary = expectedSalary;
    }

    /**
     * 获取金额开始区间
     * 
     * @return
     */
    public BigDecimal getPayStart() {
        return payStart;
    }

    /**
     * 设置金额开始区间
     * 
     * @param payStart
     */
    public void setPayStart(BigDecimal payStart) {
        this.payStart = payStart;
    }

    /**
     * 获取金额结束区间
     * 
     * @return
     */
    public BigDecimal getPayEnd() {
        return payEnd;
    }

    /**
     * 设置金额结束区间
     * 
     * @param payEnd
     */
    public void setPayEnd(BigDecimal payEnd) {
        this.payEnd = payEnd;
    }

    /**
     * 获取录用人数
     * 
     * @return
     */
    public Integer getHireNum() {
        return hireNum;
    }

    /**
     * 设置录用人数
     * 
     * @param hireNum
     */
    public void setHireNum(Integer hireNum) {
        this.hireNum = hireNum;
    }

    /**
     * 获取应聘记录ID
     * 
     * @return
     */
    public Integer getPostApplyId() {
        return postApplyId;
    }

    /**
     * 设置应聘记录ID
     * 
     * @param postApplyId
     */
    public void setPostApplyId(Integer postApplyId) {
        this.postApplyId = postApplyId;
    }

    /**
     * 获取是否已招满(true:是,false:否)
     * 
     * @return
     */
    public Boolean getIsFull() {
        Integer hireNum = getHireNum();
        if (StringUtil.isBlankObject(getHireNum())) {
            return false;
        }

        return hireNum >= getNumPeople();
    }

    /**
     * 设置是否已招满(true:是,false:否)
     * 
     * @param isFull
     */
    public void setIsFull(Boolean isFull) {
        this.isFull = isFull;
    }

    /**
     * 获取当前时间
     * 
     * @return
     */
    public Date getThisDate() {
        return thisDate;
    }

    /**
     * 设置当前时间
     * 
     * @param thisDate
     */
    public void setThisDate(Date thisDate) {
        this.thisDate = thisDate;
    }

    /**
     * 获取上岗状态(1:待审核,2:已上岗,3:未上岗,4:已取消)
     * 
     * @return
     */
    public List<Integer> getPostsStatuss() {
        return postsStatuss;
    }

    /**
     * 设置上岗状态(1:待审核,2:已上岗,3:未上岗,4:已取消)
     * 
     * @param postsStatuss
     */
    public void setPostsStatuss(List<Integer> postsStatuss) {
        this.postsStatuss = postsStatuss;
    }

}